// File: dao/NovelInfoDao.h
#pragma once
#include <QObject>
#include <QSqlQuery>
#include <QVariant>
#include <QDebug>
#include <QSqlError> // 包含 QSqlError 头文件
#include "../entity/chapterinfo.h"

class ChapterDao : public QObject {
    Q_OBJECT
public:
    explicit ChapterDao(QObject *parent = nullptr);

    //新增章节
    Q_INVOKABLE bool insert(ChapterInfo *chapter);

    //批量插入章节
    Q_INVOKABLE bool batchInsert(QVector<ChapterInfo*>& chapterList);

    //根据小说id，删除章节
    bool deleteByNovelId(const QString &novelId);

    //更新章节
    Q_INVOKABLE bool update(ChapterInfo *novel);

    //根据小说章节与序号，查询章节
    Q_INVOKABLE ChapterInfo* queryOne(const QString &novelId, int index);

    //根据id获取章节
    ChapterInfo* getById(const QString &chapterId);

    //根据小说id，获取所有章节
    QList<QObject*> getByNovelId(const QString &novelId);

    //根据雄安说id和范围，获取章节列表
    QList<ChapterInfo*> getByRange(const QString &novelId, int startIndex, int count);

    //更新章节内容
    bool updateContent(const QString &chapterId, const QString &content, qint64 length);

    // 更新章节内容路径
    bool updateContentPath(const QString &chapterId, const QString &contentPath);
};
